#!/bin/bash

host=$1
int=0;

existe=`grep "$host$" <hosts | wc -l`;
if [ "$existe" == "0" ]; then
	echo "El hosts no existe."
	exit;
fi;

echo "==Levantando interfaces del host \"$host\"==";

grep "$host$" <hosts | while read entrada; do
	echo "$entrada";
	e=($entrada);
	host_ip=${e[0]};
	nombre=${e[1]};

	red_nombre="`grep ^$host_ip <hosts_extras.csv | cut -f2`";

	red=(`grep ^$red_nombre <redes.csv`);
	red_ip=${red[1]};
	broadcast=${red[3]};
	netmask=${red[4]};

	#INICIO: 
	# COMPROBACION DE QUE EL IP DEL HOST ESTE BIEN ASIGANDO AL SEGMENTO DE RED.
	IFS_VIEJO=$IFS;
	IFS='.';
	h=($host_ip);
	ni=($red_ip);
	nc=($broadcast);

	if [ $h[0] != $ni[0] ] && [ $h[0] != $nc[0] ]; then
		echo "IP no estan dentro de la misma clase A".
		echo "$h | $ni | $nc";
		exit;
	fi;
	if [ $h[1] != $ni[1] ] && [ $h[1] != $nc[1] ]; then
		echo "IP no estan dentro de la misma clase B".
		exit;
	fi;
	if [ $h[2] != $ni[2] ] && [ $h[2] != $nc[2] ]; then
		echo "IP no estan dentro de la misma clase C".
		exit;
	fi;

	if [ "${h[3]}" -le "${ni[3]}" ]; then
		echo "Debajo del BC.";
		exit;
	fi;
	if [ "${h[3]}" -ge "${nc[3]}" ]; then
		echo "${h[3]} ? ${nc[3]}";
		echo "Arriba del NT.";
		exit;
	fi;

	IFS=$IFS_VIEJO;
	#FIN:
	# COMPROBACION DE QUE EL IP DEL HOST ESTE BIEN ASIGANDO AL SEGMENTO DE RED.
	# TODO ¿Hay que comprobar que sean completamente correctas las IP's?, por ejemplo que cumplan la mascara de red.

	echo "Host: \"$host\", Red \"$red_nombre\": $red_ip, Interface: eth0:$int, Mascara: $netmask";
	
	echo "ifconfig -v eth0:$int $host_ip netmask $netmask broadcast $broadcast";
	ifconfig -v eth0:$int $host_ip netmask $netmask broadcast $broadcast;	
done;

